package com.shujia

import scala.beans.BeanProperty

// 类的定义

class MyClass(id: String, name: String, _age: Int) { // 默认的构造方法

  // 定义属性
  val _id: String = id
  var _name: String = name
  @BeanProperty var age: Int = _age
  var _clazz: String = _ // 表示该属性稍后再进行初始化
  private val gender: String = "未知" // 只能在类的内部使用 或者是伴生对象中

  // 构造方法的重载
  def this(id: String, name: String, age: Int, clazz: String) = {
    // 第一行代码必须调用默认的构造方法
    this(id, name, age)
    println("进入了构造方法")
    this._clazz = clazz
  }

  // 定义方法
  def getName: String = {
    this._name
  }

  def setName(name: String): Unit = {
    this._name = name
  }
}

object Demo07Class {
  def main(args: Array[String]): Unit = {
    println("Hello World!")
    val zs: MyClass = new MyClass("001", "zs", 20)
    val ls: MyClass = new MyClass("002", "ls", 22)
    val ww: MyClass = new MyClass("003", "ww", 21, "文科一班")
    println(zs._id)
    println(zs._name)
    println(zs._clazz)
    println(ls._clazz)
    println(ww._clazz)


    println(zs.getName)
    zs._name = "zssssss"
    zs.setName("zss")
    println(zs.getName)

    println(zs.getAge())
    zs.setAge(18)
    println(zs.getAge())
  }

}
